/*
    学习目标：泛型接口的使用
    使用场景： 描述大量相似的结构
    💥 泛型接口，调用时不能省略泛型
    🔔 成员（属性和方法）都可以访问泛型接口中的泛型
    
*/

const res = {
  message: '成功',
  status: 200,
  data: {
    token: '123',
  },
};

interface IResponse<T> {
  message: string;
  status: number;
  data: T;
  sayHello?: (aa: T) => T;
}

const loginRes: IResponse<{ token: string; refres_token?: string }> = {
  message: '登录成功',
  status: 200,
  data: {
    token: '123',
  },
};

const articleRes: IResponse<{ title: string; content: string }> = {
  message: '登录成功',
  status: 200,
  data: {
    title: '123',
    content: '213',
  },
};
